jest 入門
目次
インストール
設定ファイル
覚えておきたい基本、便利ブロック
標準マッチャ
モック
Jest関連オブジェクト
インストール
$ yarn add --dev jest
jestの設定をする方法は主に2パターン存在する。
1. jest.config.jsをプロジェクトルートの直下に置く
code: jest.config.js
module.exports = {
verbose: true
}
2. package.jsonにjestの設定を記載する
code: package.json
{
"name": "sample-pjt",
"jest": {
"verbose": true
}
}
代表的な設定
moduleNameMapper
Jestで本番ファイル、モジュールに対するaliasを扱うための設定。
code: jest.config.js
module.exports = {
moduleNameMapper: {
"^src(.*)$": "<rootDir>/src/$1",
},
}
code: sample.test.js
// Shared は src/shared を参照している
import { greet } from "src/greet.ts";
srcディレクトリの下にあるモジュールを、エイリアスからimportできる。
関連
(気づいたら追記していく)
afterAll
説明省力するが、describeの外か中、どちらに記述するかで挙動が変わる。
afterEach
説明省力するが、describeの外か中、どちらに記述するかで挙動が変わる。
beforeAll
説明省力するが、describeの外か中、どちらに記述するかで挙動が変わる。
beforeEach
説明省力するが、describeの外か中、どちらに記述するかで挙動が変わる。
describe.each
pytestでいうところの@pytest.mark.parametrize的なノリ。それ以上に便利かも。
詳細はリンクに飛んで確認せよ。
describe.only:
ファイルの中で対象describeのテストのみ実行
describe.skip
このdescribeのテストはスキップされる
このonlyとskipは、ちょくちょく使うことになるかもしれない。デバッグ中とか。
以降、いろんなやつにonlyとskipつけれる。意味は一緒。
test.concurrent
並行でテスト実行できるとのこと。
時間短縮ができそうね、ただ、テストコードにバグが起きそうではある。少し危ない。
test.each
これも使える。describeだけじゃない。test.concurrent.eachも
test.failing
失敗することが期待されるテストに対してfailingをつける。
なるほど。少しややこいか...。書き方に注意しないと混乱を生みそうだ。
test.todo
テストが計画されてる段階なら、todoをつけよう。
標準マッチャ
これはもう必要になる度に検索しよう。以下リンクが全容。
モック
これはもう必要になる度に検索しよう。以下リンクが全容。
モックは、挙動がむずいので以下も読んでみるといい
Jest関連オブジェクト
これはもう必要になる度に検索しよう。以下リンクが全容。